package base.util;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;


import java.io.File;
import java.util.List;

/**
 * 对XML进行处理的类
 * @Author: x1aolone
 * @Date: 2019/10/11 21:22
 */
public class XMLUtils {

    /**
     * 根据文件类型，从XML读取文件的路径
     * @param fileType 文件的类型
     * @return 文件的路径
     */
    public static String getFilePath (String fileType) {
        final String baseElementName = "filePath";
        File fileConfigurationXML = new File("src/resource/FileConfiguration.xml");
        SAXReader saxReader = new SAXReader();
        StringBuilder filePath = new StringBuilder();
        try {
            Document document = saxReader.read(fileConfigurationXML);
            Element root = document.getRootElement();
            List<Element> filePaths = root.elements(baseElementName);
            for (Element e : filePaths) {
                if (e.attribute("type").getValue().equals("disk")) {
                    filePath.append(e.element("directory").getText()).append("/")
                            .append(e.element("file").getText());
                    break;
                }
            }
        } catch (DocumentException e) {
            e.printStackTrace();
            return null;
        }
        return filePath.toString();
    }


    /**
     * 工具类中不能有public或者default的构造方法
     * 同时抛出Error，防止通过反射创建工具类对象
     */
    private XMLUtils () {
        throw new Error("请不要实例化工具类！");
    }



}
